# Q. What is this file?
# A. This file contains options which allow you to configure your multiworld experience while allowing
#    others to play how they want as well.
#
# Q. How do I use it?
# A. The options in this file are weighted. This means the higher number you assign to a value, the
#    more chances you have for that option to be chosen. For example, an option like this:
#
#    map_shuffle:
#      on: 5
#      off: 15
#
#    Means you have 5 chances for map shuffle to occur, and 15 chances for map shuffle to be turned
#    off.
#
# Q. I've never seen a file like this before. What characters am I allowed to use?
# A. This is a .yaml file. You are allowed to use most characters.
#    To test if your yaml is valid or not, you can use this website:
#        http://www.yamllint.com/
#    You can also verify that your Archipelago options are valid at this site:
#        https://archipelago.gg/check

# Your name in-game, limited to 16 characters.
#     {player} will be replaced with the player's slot number.
#     {PLAYER} will be replaced with the player's slot number, if that slot number is greater than 1.
#     {number} will be replaced with the counter value of the name.
#     {NUMBER} will be replaced with the counter value of the name, if the counter value is greater than 1.
name: Player{number}

# Used to describe your yaml. Useful if you have multiple files.
description: 'Default Hollow Knight: Silksong Template'

game: 'Hollow Knight: Silksong'
requires:
  version: 0.6.7 # Version of Archipelago required for this yaml to work as expected.
  game:
    'Hollow Knight: Silksong': 0.4.4 # Version of the world required for this yaml to work as expected.

'Hollow Knight: Silksong':
  ################
  # Game Options #
  ################
  progression_balancing:
    # A system that can move progression earlier, to try and prevent the player from getting stuck and bored early.
    # 
    # A lower setting means more getting stuck. A higher setting means less getting stuck.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 99
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-99: 0 # random value between 0 and 99
    disabled: 0 # equivalent to 0
    normal: 50 # equivalent to 50
    extreme: 0 # equivalent to 99

  accessibility:
    # Set rules for reachability of your items/locations.
    # 
    # **Full:** ensure everything can be reached and acquired.
    # 
    # **Minimal:** ensure what is needed to reach your goal can be acquired.
    # 
    # LogicUnknown locations never hold advancement items and remain out of logic
    # until your goal is completed.
    # Their map marker shows that the route is still incomplete.
    full: 50
    minimal: 0

  goal:
    # Act 1-3 require beating the chosen act, Cursed Ending is self
    # explanatory, Flea Hunt is getting the set amount of fleas and Spelling Bee
    # is getting every unique letter in the chosen phrase with Alphabet Rando on
    act_1: 0
    act_2: 0
    act_3: 50
    flea_hunt: 0
    cursed_ending: 0
    spelling_bee: 0

  spelling_bee_phrase:
    # The word or phrase used by the Spelling Bee goal.
    # 
    # Only A-Z letters and spaces are valid. Other characters change the goal to
    # Act 2 and do not automatically enable Alphabet Mode.
    Hornet: 50

  flea_hunt_count:
    # Number of distinct AP Fleas received for Flea Hunt victory.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 1
    # Maximum value is 30
    30: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-1-30: 0 # random value between 1 and 30

  starting_location:
    # Use the vanilla opening or experimental Bone Bottom start with normal cloak.
    vanilla: 50
    bone_bottom: 0

  starting_crest:
    # Choose Hornet's starting Crest when Crests are randomized.
    # 
    # random selects one of the seven Crests during generation.
    hunter: 0
    wanderer: 0
    reaper: 0
    beast: 0
    architect: 0
    witch: 0
    shaman: 0
    random: 50

  early_dash:
    # Place Dash early when Skills are randomized.
    'false': 0
    'true': 50

  split_dash_and_sprint:
    # Use separate Sprint and Dash items with Skills set to anywhere.
    'false': 50
    'true': 0

  trails_end_requirement:
    # Choose whether Trail's End uses 14 Shakra map-stock purchases or received maps.
    shakra_stock: 50
    owned_maps: 0

  skips:
    # Choose the hardest explicitly labelled movement skips allowed in logic.
    none: 50
    easy: 0
    moderate: 0
    difficult: 0

  scuttlebrace_logic:
    # Allow Scuttlebrace movement routes in logic
    'false': 50
    'true': 0

  start_with_maps:
    # Start with every eligible map except Lost Verdania.
    'false': 0
    'true': 50

  start_fully_mapped:
    # Start with the full world map drawn and all starting maps owned.
    'false': 0
    'true': 50

  automatic_compass:
    # Always show Hornet on maps without granting or equipping Compass.
    'false': 0
    'true': 50

  check_map_markers:
    # Show enabled, unchecked Archipelago checks on the in-game map.
    'off': 0
    mapped_rooms: 0
    owned_maps: 0
    all: 50

  randomized_bell_markers:
    # Move the five Grand Gate Bell markers to their randomized local checks.
    'false': 0
    'true': 50

  randomized_melody_markers:
    # Move Threefold Melody markers to their randomized local checks.
    'false': 0
    'true': 50

  vog_woth_hints:
    # Maximum Way of the Hero area hints offered by Vog.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 30
    0: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-30: 0 # random value between 0 and 30

  vog_foolish_hints:
    # Maximum Foolish area hints offered by Vog.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 30
    0: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-30: 0 # random value between 0 and 30

  vog_general_hints:
    # Maximum exact item location hints offered by Vog.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 30
    0: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-30: 0 # random value between 0 and 30

  bellway_access:
    # Choose whether Bell Beast must be defeated before using Bellways.
    bell_beast_required: 0
    randomized_stations: 50

  enemy_rosary_multiplier:
    # Multiply Rosaries dropped by defeated enemies only.
    x1: 0
    x1_5: 0
    x2: 50
    x3: 0
    x5: 0
    x10: 0

  enemy_shard_multiplier:
    # Multiply Shell Shards dropped by defeated enemies only.
    x1: 0
    x1_5: 0
    x2: 50
    x3: 0
    x5: 0
    x10: 0

  normal_shop_prices:
    # Randomize prices for ShopItem purchases other than maps and pins.
    vanilla: 50
    free: 0
    shuffle: 0
    cheap: 0
    expensive: 0

  bellway_prices:
    # Randomize prices charged by Bellway toll machines.
    vanilla: 50
    free: 0
    shuffle: 0
    cheap: 0
    expensive: 0

  map_prices:
    # Randomize prices for Shakra's area maps.
    vanilla: 50
    free: 0
    shuffle: 0
    cheap: 0
    expensive: 0

  pin_prices:
    # Randomize prices for Shakra's permanent map pins.
    vanilla: 50
    free: 0
    shuffle: 0
    cheap: 0
    expensive: 0

  upgrade_prices:
    # Randomize the two paid Needle-upgrade service prices.
    vanilla: 50
    free: 0
    shuffle: 0
    cheap: 0
    expensive: 0

  donation_prices:
    # Randomize Rosary and Shell Shard Wish donation requirements.
    vanilla: 50
    free: 0
    shuffle: 0
    cheap: 0
    expensive: 0

  vog_hint_prices:
    # Randomize prices for Vog's Hero, Foolish and General hints.
    vanilla: 50
    free: 0
    shuffle: 0
    cheap: 0
    expensive: 0

  faster_dialogue:
    # Speed up ordinary NPC dialogue without skipping conversations.
    'false': 0
    'true': 50

  skill_randomization:
    # Randomizes the 9 traversal skills in the game.
    # 
    # vanilla: leaves them where they normally are
    # anywhere: mixes them into the global item pool
    # shuffle: mixes them up between one another
    vanilla: 0
    anywhere: 50
    shuffle: 0

  tool_randomization:
    # Randomizes the 59 tools in the game.
    # 
    # vanilla: leaves them where they normally are
    # anywhere: mixes them into the global item pool
    # shuffle: mixes them up between one another
    vanilla: 0
    anywhere: 50
    shuffle: 0

  silk_skill_randomization:
    # Randomizes the 6 Silk Skills in the game.
    # 
    # vanilla: leaves them where they normally are
    # anywhere: mixes them into the global item pool
    # shuffle: mixes them up between one another
    vanilla: 0
    anywhere: 50
    shuffle: 0

  crest_randomization:
    # Randomizes the 7 Crests in the game.
    # 
    # vanilla: leaves them where they normally are
    # anywhere: mixes them into the global item pool
    # shuffle: mixes them up between one another
    vanilla: 0
    anywhere: 50
    shuffle: 0

  flea_randomization:
    # Randomizes the 30 Fleas in the game, including Kratt, Vog and the Huge Flea.
    # 
    # vanilla: leaves them where they normally are
    # anywhere: mixes them into the global item pool
    # shuffle: mixes them up between one another
    vanilla: 0
    anywhere: 50
    shuffle: 0

  crest_slot_randomization:
    # Randomizes the 20 Crest Slots in the game.
    # 
    # vanilla: leaves them where they normally are
    # anywhere: mixes them into the global item pool
    # shuffle: mixes them up between one another
    vanilla: 0
    anywhere: 50
    shuffle: 0

  mask_shard_randomization:
    # Randomizes the 20 Mask Shards in the game.
    # 
    # vanilla: leaves them where they normally are
    # anywhere: mixes them into the global item pool
    vanilla: 0
    anywhere: 50

  spool_fragment_randomization:
    # Randomizes the 18 Spool Fragments in the game.
    # 
    # vanilla: leaves them where they normally are
    # anywhere: mixes them into the global item pool
    vanilla: 0
    anywhere: 50

  silk_heart_randomization:
    # Randomizes the 3 Silk Hearts in the game.
    # 
    # vanilla: leaves them where they normally are
    # anywhere: mixes them into the global item pool
    vanilla: 0
    anywhere: 50

  bellway_randomization:
    # Randomizes the 10 Bellways in the game.
    # 
    # vanilla: leaves them where they normally are
    # anywhere: mixes them into the global item pool
    # shuffle: mixes them up between one another
    vanilla: 0
    anywhere: 50
    shuffle: 0

  ventrica_randomization:
    # Randomizes the 6 Ventricas in the game.
    # 
    # vanilla: leaves them where they normally are
    # anywhere: mixes them into the global item pool
    # shuffle: mixes them up between one another
    vanilla: 0
    anywhere: 50
    shuffle: 0

  map_randomization:
    # Randomizes the 28 Maps in the game.
    # 
    # vanilla: leaves them where they normally are
    # anywhere: mixes them into the global item pool
    # shuffle: mixes them up between one another
    vanilla: 0
    anywhere: 50
    shuffle: 0

  randomize_needle_upgrades:
    # Shuffle Plinney's Needle upgrades and their three Pale Oils.
    'false': 50
    'true': 0

  melody_randomization:
    # Randomizes the 5 Melodies in the game: the three required to finish Act 2, Beastling Call and Elegy of the Deep.
    # 
    # vanilla: leaves them where they normally are
    # anywhere: mixes them into the global item pool
    # shuffle: mixes them up between one another
    vanilla: 0
    anywhere: 50
    shuffle: 0

  pin_randomization:
    # Randomizes the 4 map-pin types in the game.
    # 
    # vanilla: leaves them where they normally are
    # anywhere: mixes them into the global item pool
    # shuffle: mixes them up between one another
    vanilla: 0
    anywhere: 50
    shuffle: 0

  relic_randomization:
    # Randomizes the 21 Relics in the game.
    # 
    # vanilla: leaves them where they normally are
    # anywhere: mixes them into the global item pool
    # shuffle: mixes them up between one another
    vanilla: 0
    anywhere: 50
    shuffle: 0

  crafting_kit_randomization:
    # Randomizes the 4 Crafting Kits in the game.
    # 
    # vanilla: leaves them where they normally are
    # anywhere: mixes them into the global item pool
    vanilla: 0
    anywhere: 50

  major_key_randomization:
    # Randomizes Key of Apostate, White Key, Surgeon's Key, Architect's Key and Craw Summons.
    # 
    # Key of Heretic and Key of Indolent remain at their vanilla locations until
    # logic for the Slab is finished.
    # 
    # vanilla: leaves them where they normally are
    # anywhere: mixes them into the global item pool
    # shuffle: mixes them up between one another
    vanilla: 50
    anywhere: 0
    shuffle: 0

  simple_key_randomization:
    # Randomize four destination-specific keys without fungible spending.
    # 
    # anywhere: mixes them into the global item pool
    # shuffle: mixes them up between one another
    anywhere: 50
    shuffle: 0

  memory_locket_randomization:
    # Randomizes the 20 Memory Lockets in the game.
    # 
    # If Crest Slots are randomized, using a Memory Locket will not unlock the
    # slot for use, but whatever took its place in that slot remains its AP check.
    # 
    # vanilla: leaves them where they normally are
    # anywhere: mixes them into the global item pool
    vanilla: 50
    anywhere: 0

  craftmetal_randomization:
    # Randomizes the 8 Craftmetals in the game.
    # 
    # vanilla: leaves them where they normally are
    # anywhere: mixes them into the global item pool
    vanilla: 50
    anywhere: 0

  mossberry_randomization:
    # Randomizes the 7 Mossberries in the game. Three are required for the Moss Druid's quest, while giving her the remaining four earns another check.
    # 
    # vanilla: leaves them where they normally are
    # anywhere: mixes them into the global item pool
    vanilla: 50
    anywhere: 0

  pollip_heart_randomization:
    # Randomizes the 6 finite Pollip Hearts in the game. They are required for Greyroot's quest in Shellwood.
    # 
    # vanilla: leaves them where they normally are
    # anywhere: mixes them into the global item pool
    vanilla: 50
    anywhere: 0

  silkeater_randomization:
    # Randomizes the 9 Silkeaters in the game.
    # 
    # vanilla: leaves them where they normally are
    # anywhere: mixes them into the global item pool
    vanilla: 50
    anywhere: 0

  tool_pouch_randomization:
    # Randomizes the 4 Tool Pouch upgrades in the game.
    # 
    # vanilla: leaves them where they normally are
    # anywhere: mixes them into the global item pool
    vanilla: 0
    anywhere: 50

  lore_tablet_randomization:
    # Randomizes the 38 Lore Tablets in the game.
    # 
    # vanilla: leaves them where they normally are
    # anywhere: mixes them into the global item pool
    # shuffle: mixes them up between one another
    vanilla: 50
    anywhere: 0
    shuffle: 0

  frayed_rosary_string_randomization:
    # Randomizes the 19 Frayed Rosary Strings in the game.
    # 
    # vanilla: leaves them where they normally are
    # anywhere: mixes them into the global item pool
    vanilla: 50
    anywhere: 0

  rosary_string_randomization:
    # Randomizes the 4 Rosary Strings in the game.
    # 
    # vanilla: leaves them where they normally are
    # anywhere: mixes them into the global item pool
    vanilla: 50
    anywhere: 0

  rosary_necklace_randomization:
    # Randomizes the 5 Rosary Necklaces in the game.
    # 
    # vanilla: leaves them where they normally are
    # anywhere: mixes them into the global item pool
    vanilla: 50
    anywhere: 0

  heavy_rosary_necklace_randomization:
    # Randomizes the 3 Heavy Rosary Necklaces in the game.
    # 
    # vanilla: leaves them where they normally are
    # anywhere: mixes them into the global item pool
    vanilla: 50
    anywhere: 0

  pale_rosary_necklace_randomization:
    # Randomizes the 2 Pale Rosary Necklaces in the game.
    # 
    # vanilla: leaves them where they normally are
    # anywhere: mixes them into the global item pool
    vanilla: 50
    anywhere: 0

  shard_bundle_randomization:
    # Randomizes the 12 Shard Bundles in the game.
    # 
    # vanilla: leaves them where they normally are
    # anywhere: mixes them into the global item pool
    vanilla: 50
    anywhere: 0

  beast_shard_randomization:
    # Randomizes the 7 Beast Shard upgrades in the game.
    # 
    # vanilla: leaves them where they normally are
    # anywhere: mixes them into the global item pool
    vanilla: 50
    anywhere: 0

  pristine_core_randomization:
    # Randomizes the 2 Pristine Cores in the game.
    # 
    # vanilla: leaves them where they normally are
    # anywhere: mixes them into the global item pool
    vanilla: 50
    anywhere: 0

  rosary_cache_randomization:
    # Randomizes the 200 Rosary Caches in the game.
    # 
    # These are the Rosaries usually seen strung up and out in the open while exploring.
    # 
    # vanilla: leaves them where they normally are
    # anywhere: mixes them into the global item pool
    # shuffle: mixes them up between one another
    vanilla: 50
    anywhere: 0
    shuffle: 0

  shell_shard_cache_randomization:
    # Randomizes the 153 Shell Shard Caches in the game.
    # 
    # These are the Shards found in fossils that must be hit several times.
    # 
    # vanilla: leaves them where they normally are
    # anywhere: mixes them into the global item pool
    # shuffle: mixes them up between one another
    vanilla: 50
    anywhere: 0
    shuffle: 0

  boss_sanity:
    # Randomizes the 34 drops from bosses in the game. This does not randomize the bosses themselves.
    # 
    # vanilla: leaves them where they normally are
    # anywhere: mixes them into the global item pool
    # shuffle: mixes them up between one another
    vanilla: 0
    anywhere: 50
    shuffle: 0

  bell_shrine_sanity:
    # Randomizes the 5 Judge Bell Shrines.
    vanilla: 50
    anywhere: 0
    shuffle: 0

  quest_sanity:
    # Vanilla keeps quest rewards unchanged. Shuffle randomizes rewards only among quest checks. Anywhere joins the global item pool.
    # 
    # This covers 25 quest rewards without randomizing the quests themselves.
    vanilla: 0
    anywhere: 50
    shuffle: 0

  individual_relic_turn_ins:
    # Make Scrounge's 15 relic and Cardinius's 6 cylinder deposits individual AP checks instead of paying Rosaries.
    'false': 50
    'true': 0

  death_link:
    # Share deaths with other DeathLink-enabled players.
    'false': 50
    'true': 0

  death_link_cocoon:
    # Choose how received DeathLinks affect your death cocoon and Rosaries.
    # 
    # vanilla: Received DeathLinks replace an existing cocoon and move your
    # carried Rosaries into the new cocoon.
    # cocoonless: Received DeathLinks leave your carried Rosaries and any
    # existing cocoon untouched.
    # cocoon: The first received DeathLink can create a normal cocoon. Later
    # received DeathLinks leave that cocoon and your carried Rosaries untouched.
    # 
    # Your own deaths always use the normal game behavior.
    # This option has no effect when Death Link is disabled.
    vanilla: 0
    cocoonless: 0
    cocoon: 50

  silk_link:
    # Share only the base Spool's current Silk with other enabled Silksong players.
    'false': 50
    'true': 0

  rosary_link:
    # Share loose Rosary gains and costs with other enabled Silksong players.
    'false': 50
    'true': 0

  shell_shard_link:
    # Share base-pouch Shell Shard gains and costs with enabled Silksong players.
    'false': 50
    'true': 0

  alphabet_mode:
    # Add Letter A through Letter Z to the item pool and hide unowned letters in game text.
    # 
    # Text filtering only runs while the game language is English.
    # This needs at least 26 randomized filler rewards.
    'false': 50
    'true': 0

  trap_percentage:
    # Percent of all filler items in the random pool replaced by traps.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 100
    0: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-100: 0 # random value between 0 and 100

  stagger_trap_weight:
    # Relative frequency of Stagger Traps, zero disables them.
    # 
    # When staggered, Hornet receives knockback but takes no damage.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 100
    25: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-100: 0 # random value between 0 and 100

  rosary_spill_trap_weight:
    # Relative frequency of Rosary Spill Traps, zero disables them.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 100
    25: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-100: 0 # random value between 0 and 100

  darkness_trap_weight:
    # Relative frequency of Darkness Traps, zero disables them.
    # 
    # The screen is darkened to a small area of light around Hornet for 20 seconds.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 100
    25: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-100: 0 # random value between 0 and 100

  cursed_crest_trap_weight:
    # Relative frequency of Cursed Crest Traps, zero disables them.
    # 
    # Hornet is inflicted with the Cursed Crest for 2 minutes, as if she had done
    # the Rite of Rebirth quest with Greyroot.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 100
    25: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-100: 0 # random value between 0 and 100

  muckmaggot_status_trap_weight:
    # Relative frequency of Muckmaggot Status Traps, zero disables them.
    # 
    # Hornet is afflicted with Muckmaggots as if she fell into Bilewater. Binding
    # or using a bench removes them.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 100
    25: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-100: 0 # random value between 0 and 100

  naked_trap_weight:
    # Relative frequency of two-minute Naked Traps, zero disables them.
    # 
    # Hornet is left naked as if she were in the Slab escape sequence for 2 minutes.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 100
    25: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-100: 0 # random value between 0 and 100

  ###########################
  # Item & Location Options #
  ###########################
  local_items:
    # Forces these items to be in their native world.
    []

  non_local_items:
    # Forces these items to be outside their native world.
    []

  start_inventory:
    # Start with the specified amount of these items. Example: "Bomb: 1"
    {}

  start_hints:
    # Start with these item's locations prefilled into the ``!hint`` command.
    []

  start_location_hints:
    # Start with these locations and their item prefilled into the ``!hint`` command.
    []

  exclude_locations:
    # Prevent these locations from having an important item.
    []

  priority_locations:
    # Prevent these locations from having an unimportant item.
    []

  item_links:
    # Share part of your item pool with other players.
    []

  plando_items:
    # Generic items plando.
    []
